Contrasts of cue and stim

Model (CESO)
parameter:
Table of Contents

Pain > (Vicarious & Cognitive)

Pain > VC :: load dataset

contrast_of_interest = 'cue_P';
 
mount_dir = '/Volumes/spacetop_projects_cue/analysis/fmri/spm/univariate/model02_CESO/1stlevel';
contrast_name = {'cue_P', 'cue_V', 'cue_C', 'cue_G',...
'stim_P', 'stim_V', 'stim_C', 'stim_G',...
'motor', ...
'simple_cue_P', 'simple_cue_V', 'simple_cue_C', ...
'simple_stim_P', 'simple_stim_V', 'simple_stim_C'
};
 
index = find(strcmp(contrast_name, contrast_of_interest));
con_name = sprintf('*con_%04d.nii', index);
con_list = dir(fullfile(mount_dir, '*', con_name));
spm('Defaults','fMRI')
con_fldr = {con_list.folder}; fname = {con_list.name};
con_files = strcat(con_fldr,'/', fname)';
con_data_obj = fmri_data(con_files);
Using default mask: /Users/h/Documents/MATLAB/CanlabCore/CanlabCore/canlab_canonical_brains/Canonical_brains_surfaces/brainmask_canlab.nii loading mask. mapping volumes. checking that dimensions and voxel sizes of volumes are the same. Pre-allocating data array. Needed: 38736756 bytes Loading image number: 97 Elapsed time is 2.859243 seconds. Image names entered, but fullpath attribute is empty. Getting path info. Number of unique values in dataset: 9142547 Bit rate: 23.12 bits
 

Pain > VC :: check data coverage

m = mean(con_data_obj);
m.dat = sum(~isnan(con_data_obj.dat) & con_data_obj.dat ~= 0, 2);
orthviews(m, 'trans') % display
SPM12: spm_check_registration (v7759) 23:33:38 - 21/10/2023 ======================================================================== Display /Users/h/Documents/MATLAB/CanlabCore/CanlabCore/canlab_canonical_brains/Canonical_brains_surfaces/keuken_2014_enhanced_for_underlay.img,1 Grouping contiguous voxels: 1 regions
ans = 1×1 cell array
{1×1 region}

Pain > VC :: Plot diagnostics, before l2norm

drawnow; snapnow
 
[wh_outlier_uncorr, wh_outlier_corr] = plot(con_data_obj)
______________________________________________________________ Outlier analysis ______________________________________________________________ global mean | global mean to var | spatial MAD | Missing values | 0 images Retained 3 components for mahalanobis distance Expected 50% of points within 50% normal ellipsoid, found 22.68% Expected 4.85 outside 95% ellipsoid, found 5 Potential outliers based on mahalanobis distance: Bonferroni corrected: 3 images Cases 25 80 81 Uncorrected: 5 images Cases 9 25 80 81 96 Retained 6 components for mahalanobis distance Expected 50% of points within 50% normal ellipsoid, found 54.64% Expected 4.85 outside 95% ellipsoid, found 2 Potential outliers based on mahalanobis distance: Bonferroni corrected: 0 images Cases Uncorrected: 2 images Cases 31 47 Mahalanobis (cov and corr, q<0.05 corrected): 3 images Outlier_count Percentage _____________ __________ global_mean 3 3.0928 global_mean_to_variance 0 0 missing_values 0 0 rmssd_dvars 0 0 spatial_variability 3 3.0928 mahal_cov_uncor 5 5.1546 mahal_cov_corrected 3 3.0928 mahal_corr_uncor 2 2.0619 mahal_corr_corrected 0 0 Overall_uncorrected 7 7.2165 Overall_corrected 3 3.0928
SPM12: spm_check_registration (v7759) 23:34:07 - 21/10/2023 ======================================================================== Display /Users/h/Documents/MATLAB/CanlabCore/CanlabCore/canlab_canonical_brains/Canonical_brains_surfaces/keuken_2014_enhanced_for_underlay.img,1 (all) /Users/h/Documents/MATLAB/CanlabCore/CanlabCore/canlab_canonical_brains/Canonical_brains_surfaces/keuken_2014_enhanced_for_underlay.img,1 /Users/h/Documents/MATLAB/CanlabCore/CanlabCore/canlab_canonical_brains/Canonical_brains_surfaces/keuken_2014_enhanced_for_underlay.img,1 Grouping contiguous voxels: 1 regions Grouping contiguous voxels: 1 regions Grouping contiguous voxels: 1 regions
wh_outlier_uncorr = 97×1 logical array
0 0 0 0 0 0 0 0 1 0
wh_outlier_corr = 97×1 logical array
0 0 0 0 0 0 0 0 0 0

Pain > VC :: run robfit

set(gcf,'Visible','on')
figure ('Visible', 'on');
drawnow, snapnow;

Pain > VC :: remove outliers based on plot

con = con_data_obj;
disp(strcat("current length is ", num2str(size(con_data_obj.dat,2))))
current length is 97
%for s = 1:length(wh_outlier_corr)
%disp(strcat("-------subject", num2str(s), "------"))
con.dat = con_data_obj.dat(:,~wh_outlier_corr);
con.image_names = con_data_obj.image_names(~wh_outlier_corr,:)
con =
fmri_data with properties: source_notes: 'Info about image source here' X: [] mask: [1×1 fmri_mask_image] mask_descrip: 'REMOVED: CHANGED SPACE' images_per_session: [] Y: [] Y_names: [] Y_descrip: 'Behavioral or outcome data matrix.' covariates: [] covariate_names: {''} covariates_descrip: 'Nuisance covariates associated with data' history_descrip: 'Cell array of names of methods applied to this data, in order' additional_info: [0×0 struct] metadata_table: [0×0 table] dat: [99837×94 single] dat_descrip: [] volInfo: [1×1 struct] removed_voxels: 0 removed_images: 0 image_names: [94×21 char] fullpath: [97×112 char] files_exist: [97×1 logical] history: {'' 'Sampled to space of /Volumes/spacetop_projects_cue/analysis/fmri/spm/univariate/model02_CESO/1stlevel/sub-0013/sub-0013_con_0001.nii' 'Masked with REMOVED: CHANGED SPACE' 'Checked image files exist. All exist = 1'}
con.fullpath = con_data_obj.fullpath(~wh_outlier_corr,:)
con =
fmri_data with properties: source_notes: 'Info about image source here' X: [] mask: [1×1 fmri_mask_image] mask_descrip: 'REMOVED: CHANGED SPACE' images_per_session: [] Y: [] Y_names: [] Y_descrip: 'Behavioral or outcome data matrix.' covariates: [] covariate_names: {''} covariates_descrip: 'Nuisance covariates associated with data' history_descrip: 'Cell array of names of methods applied to this data, in order' additional_info: [0×0 struct] metadata_table: [0×0 table] dat: [99837×94 single] dat_descrip: [] volInfo: [1×1 struct] removed_voxels: 0 removed_images: 0 image_names: [94×21 char] fullpath: [94×112 char] files_exist: [97×1 logical] history: {'' 'Sampled to space of /Volumes/spacetop_projects_cue/analysis/fmri/spm/univariate/model02_CESO/1stlevel/sub-0013/sub-0013_con_0001.nii' 'Masked with REMOVED: CHANGED SPACE' 'Checked image files exist. All exist = 1'}
con.files_exist = con_data_obj.files_exist(~wh_outlier_corr,:)
con =
fmri_data with properties: source_notes: 'Info about image source here' X: [] mask: [1×1 fmri_mask_image] mask_descrip: 'REMOVED: CHANGED SPACE' images_per_session: [] Y: [] Y_names: [] Y_descrip: 'Behavioral or outcome data matrix.' covariates: [] covariate_names: {''} covariates_descrip: 'Nuisance covariates associated with data' history_descrip: 'Cell array of names of methods applied to this data, in order' additional_info: [0×0 struct] metadata_table: [0×0 table] dat: [99837×94 single] dat_descrip: [] volInfo: [1×1 struct] removed_voxels: 0 removed_images: 0 image_names: [94×21 char] fullpath: [94×112 char] files_exist: [94×1 logical] history: {'' 'Sampled to space of /Volumes/spacetop_projects_cue/analysis/fmri/spm/univariate/model02_CESO/1stlevel/sub-0013/sub-0013_con_0001.nii' 'Masked with REMOVED: CHANGED SPACE' 'Checked image files exist. All exist = 1'}
%end
disp(strcat("after removing ", num2str(sum(wh_outlier_corr)), " participants, size is now ",num2str(size(con.dat,2))))
after removing 3 participants, size is now 94

Pain > VC :: plot diagnostics, after l2norm

imgs2 = con.rescale('l2norm_images');

Pain > VC :: ttest

t = ttest(imgs2);
One-sample t-test Calculating t-statistics and p-values
orthviews(t);
SPM12: spm_check_registration (v7759) 23:34:12 - 21/10/2023 ======================================================================== Display /Users/h/Documents/MATLAB/CanlabCore/CanlabCore/canlab_canonical_brains/Canonical_brains_surfaces/keuken_2014_enhanced_for_underlay.img,1
drawnow, snapnow;
 
fdr_t = threshold(t, .05, 'fdr');
Image 1 FDR q < 0.050 threshold is 0.032186 Image 1 34 contig. clusters, sizes 1 to 63775 Positive effect: 55805 voxels, min p-value: 0.00000000 Negative effect: 8473 voxels, min p-value: 0.00000000
orthviews(fdr_t);
SPM12: spm_check_registration (v7759) 23:34:13 - 21/10/2023 ======================================================================== Display /Users/h/Documents/MATLAB/CanlabCore/CanlabCore/canlab_canonical_brains/Canonical_brains_surfaces/keuken_2014_enhanced_for_underlay.img,1
drawnow, snapnow;
 
fdr_t = threshold(t, .001, 'fdr');
Image 1 FDR q < 0.001 threshold is 0.000437 Image 1 49 contig. clusters, sizes 1 to 40474 Positive effect: 39763 voxels, min p-value: 0.00000000 Negative effect: 3881 voxels, min p-value: 0.00000000
orthviews(fdr_t);
SPM12: spm_check_registration (v7759) 23:34:14 - 21/10/2023 ======================================================================== Display /Users/h/Documents/MATLAB/CanlabCore/CanlabCore/canlab_canonical_brains/Canonical_brains_surfaces/keuken_2014_enhanced_for_underlay.img,1
drawnow, snapnow;
 
create_figure('montage'); axis off;
montage(fdr_t);
Setting up fmridisplay objects sagittal montage: 1160 voxels displayed, 42484 not displayed on these slices sagittal montage: 1144 voxels displayed, 42500 not displayed on these slices sagittal montage: 1129 voxels displayed, 42515 not displayed on these slices axial montage: 8530 voxels displayed, 35114 not displayed on these slices axial montage: 9053 voxels displayed, 34591 not displayed on these slices
drawnow, snapnow;
write(fdr_t, 'fname', strcat('/Users/h/Desktop/', contrast_of_interest, '_fdr_t.nii'), 'overwrite');
Writing: /Users/h/Desktop/cue_P_fdr_t.nii

Pain > VC :: Neurosynth similarity

[image_by_feature_correlations, top_feature_tables] = neurosynth_feature_labels( mean(imgs2), 'images_are_replicates', false, 'noverbose');
Input image 1 fullpath_was_empty _____________________________________________________________________ testr_low words_low testr_high words_high _________ _________________ __________ ____________________ -0.28774 {'stimulation' } 0.2973 {'retrieval' } -0.23834 {'muscle' } 0.2847 {'memory' } -0.22722 {'somatosensory'} 0.27184 {'episodic' } -0.21935 {'motor' } 0.27145 {'default' } -0.18787 {'sequence' } 0.26866 {'mentalizing' } -0.18664 {'pain' } 0.26114 {'mental' } -0.18588 {'sensory' } 0.25928 {'autobiographical'} -0.18259 {'frequency' } 0.25288 {'retrieved' } -0.18247 {'foot' } 0.25213 {'memories' } -0.18144 {'finger' } 0.24888 {'recollection' }
% [image_by_feature_correlations, top_feature_tables] = neurosynth_feature_labels( m, 'images_are_replicates', false, 'noverbose');
Pain > VC :: Pattern Phil
[obj, names] = load_image_set('pain_cog_emo');
Loaded images: /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_pMCC_Pain.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_aMCC_Pain.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_pACC_Pain.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_sgACC_Pain.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_vmPFC_Pain.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_dMFC_Pain.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_MFC_Pain.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_Wholebrain_Pain.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_pMCC_Cognitive_Control.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_aMCC_Cognitive_Control.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_pACC_Cognitive_Control.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_sgACC_Cognitive_Control.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_vmPFC_Cognitive_Control.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_dMFC_Cognitive_Control.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_MFC_Cognitive_Control.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_Wholebrain_Cognitive_Control.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_pMCC_Negative_Emotion.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_aMCC_Negative_Emotion.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_pACC_Negative_Emotion.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_sgACC_Negative_Emotion.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_vmPFC_Negative_Emotion.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_dMFC_Negative_Emotion.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_MFC_Negative_Emotion.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_Wholebrain_Negative_Emotion.nii
bpls_wholebrain = get_wh_image(obj, [8 16 24]);
names_wholebrain = names([8 16 24]);
create_figure('Kragel Pain-Cog-Emo maps', 1, 3);
 
stats = image_similarity_plot(con_data_obj, 'average', 'mapset', bpls_wholebrain, 'networknames', names_wholebrain, 'nofigure');
Table of correlations Group:1 -------------------------------------- T-test on Fisher's r to Z transformed point-biserial correlations R_avg T P sig Pain Wholebrain -0.0706 -12.2016 0.0000 1.0000 Cog Wholebrain 0.0138 4.2339 0.0001 1.0000 Emo Wholebrain 0.0545 10.3196 0.0000 1.0000
axis image
 
subplot(1, 3, 2)
 
barplot_columns(stats.r', 'nofigure', 'colors', {[1 .9 0] [.2 .2 1] [1 .2 .2]}, 'names', names_wholebrain)
Col 1: Pain Wholebrain Col 2: Cog Wholebrain Col 3: Emo Wholebrain --------------------------------------------- Tests of column means against zero --------------------------------------------- Name Mean_Value Std_Error T P Cohens_d ___________________ __________ _________ _______ __________ ________ {'Pain Wholebrain'} -0.070573 0.0057682 -12.235 2.2204e-15 -1.2423 {'Cog Wholebrain' } 0.013765 0.0032511 4.234 5.2598e-05 0.4299 {'Emo Wholebrain' } 0.054467 0.0052668 10.342 2.2204e-15 1.05
ans = struct with fields:
fig_han: [1×1 struct] axis_han: [1×1 Axes] bar_han1: [1×1 Bar] bar_han: {[1×1 Bar] [1×1 Bar] [1×1 Bar]} errorbar_han: {[1×1 ErrorBar] [1×1 ErrorBar] [1×1 ErrorBar]} point_han1: {97×3 cell} text_han: {97×3 cell} point_han: {97×3 cell} star_handles: [4.0006 6.0005 7.0005]
set(gca, 'FontSize', 14)
ylabel('Pattern similarity (r)');
title('Similarity (r) with patterns')
 
test_data_obj = resample_space(con_data_obj, bpls_wholebrain);
 
clear csim
for i = 1:3
 
csim(:, i) = canlab_pattern_similarity(test_data_obj.dat, bpls_wholebrain.dat(:, i), 'cosine_similarity');
 
end
Warning: Some images have zero values in some of the 411578 voxels in weight mask. These will be excluded from similarity analysis image-wise. Number of zero or NaN values within weight mask, by input image: 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 Warning: Some images have zero values in some of the 411578 voxels in weight mask. These will be excluded from similarity analysis image-wise. Number of zero or NaN values within weight mask, by input image: 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 Warning: Some images have zero values in some of the 411578 voxels in weight mask. These will be excluded from similarity analysis image-wise. Number of zero or NaN values within weight mask, by input image: 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83
 
subplot(1, 3, 3)
 
barplot_columns(csim, 'nofigure', 'colors', {[1 .9 0] [.2 .2 1] [1 .2 .2]}, 'names', names_wholebrain)
Col 1: Pain Wholebrain Col 2: Cog Wholebrain Col 3: Emo Wholebrain --------------------------------------------- Tests of column means against zero --------------------------------------------- Name Mean_Value Std_Error T P Cohens_d ___________________ __________ _________ _______ __________ ________ {'Pain Wholebrain'} -0.064879 0.0054448 -11.916 2.2204e-15 -1.2099 {'Cog Wholebrain' } 0.014408 0.0029207 4.9332 3.3937e-06 0.50089 {'Emo Wholebrain' } 0.048886 0.0049621 9.8519 2.2204e-15 1.0003
ans = struct with fields:
fig_han: [1×1 struct] axis_han: [1×1 Axes] bar_han1: [1×1 Bar] bar_han: {[1×1 Bar] [1×1 Bar] [1×1 Bar]} errorbar_han: {[1×1 ErrorBar] [1×1 ErrorBar] [1×1 ErrorBar]} point_han1: {97×3 cell} text_han: {97×3 cell} point_han: {97×3 cell} star_handles: [12.0011 13.0011 14.0011]
set(gca, 'FontSize', 14)
ylabel('Pattern similarity (cosine sim)');
title('Pattern response (cosine similarity)')

Vicarious > (Pain & Cognitive)

clear all

Vicarious > PC :: load dataset

contrast_of_interest = 'cue_V';
 
mount_dir = '/Volumes/spacetop_projects_cue/analysis/fmri/spm/univariate/model02_CESO/1stlevel';
contrast_name = {'cue_P', 'cue_V', 'cue_C', 'cue_G',...
'stim_P', 'stim_V', 'stim_C', 'stim_G',...
'motor', ...
'simple_cue_P', 'simple_cue_V', 'simple_cue_C', ...
'simple_stim_P', 'simple_stim_V', 'simple_stim_C'
};
 
index = find(strcmp(contrast_name, contrast_of_interest));
con_name = sprintf('*con_%04d.nii', index);
con_list = dir(fullfile(mount_dir, '*', con_name));
spm('Defaults','fMRI')
con_fldr = {con_list.folder}; fname = {con_list.name};
con_files = strcat(con_fldr,'/', fname)';
con_data_obj = fmri_data(con_files);
Using default mask: /Users/h/Documents/MATLAB/CanlabCore/CanlabCore/canlab_canonical_brains/Canonical_brains_surfaces/brainmask_canlab.nii Direct calls to spm_defauts are deprecated. Please use spm('Defaults',modality) or spm_get_defaults instead. loading mask. mapping volumes. checking that dimensions and voxel sizes of volumes are the same. Pre-allocating data array. Needed: 38736756 bytes Loading image number: 97 Elapsed time is 3.367004 seconds. Image names entered, but fullpath attribute is empty. Getting path info. Number of unique values in dataset: 9153538 Bit rate: 23.13 bits

Vicarious > PC :: check data coverage

m = mean(con_data_obj);
m.dat = sum(~isnan(con_data_obj.dat) & con_data_obj.dat ~= 0, 2);
orthviews(m, 'trans') % display
SPM12: spm_check_registration (v7759) 23:34:42 - 21/10/2023 ======================================================================== Display /Users/h/Documents/MATLAB/CanlabCore/CanlabCore/canlab_canonical_brains/Canonical_brains_surfaces/keuken_2014_enhanced_for_underlay.img,1 Grouping contiguous voxels: 1 regions
ans = 1×1 cell array
{1×1 region}

Vicarious > PC :: Plot diagnostics, before l2norm

drawnow; snapnow
 
[wh_outlier_uncorr, wh_outlier_corr] = plot(con_data_obj)
______________________________________________________________ Outlier analysis ______________________________________________________________ global mean | global mean to var | spatial MAD | Missing values | 0 images Retained 2 components for mahalanobis distance Expected 50% of points within 50% normal ellipsoid, found 42.27% Expected 4.85 outside 95% ellipsoid, found 5 Potential outliers based on mahalanobis distance: Bonferroni corrected: 0 images Cases Uncorrected: 5 images Cases 9 25 54 80 93 Retained 6 components for mahalanobis distance Expected 50% of points within 50% normal ellipsoid, found 58.76% Expected 4.85 outside 95% ellipsoid, found 1 Potential outliers based on mahalanobis distance: Bonferroni corrected: 0 images Cases Uncorrected: 1 images Cases 62 Mahalanobis (cov and corr, q<0.05 corrected): 0 images Outlier_count Percentage _____________ __________ global_mean 3 3.0928 global_mean_to_variance 1 1.0309 missing_values 0 0 rmssd_dvars 0 0 spatial_variability 4 4.1237 mahal_cov_uncor 5 5.1546 mahal_cov_corrected 0 0 mahal_corr_uncor 1 1.0309 mahal_corr_corrected 0 0 Overall_uncorrected 8 8.2474 Overall_corrected 4 4.1237
SPM12: spm_check_registration (v7759) 23:35:17 - 21/10/2023 ======================================================================== Display /Users/h/Documents/MATLAB/CanlabCore/CanlabCore/canlab_canonical_brains/Canonical_brains_surfaces/keuken_2014_enhanced_for_underlay.img,1 (all) /Users/h/Documents/MATLAB/CanlabCore/CanlabCore/canlab_canonical_brains/Canonical_brains_surfaces/keuken_2014_enhanced_for_underlay.img,1 /Users/h/Documents/MATLAB/CanlabCore/CanlabCore/canlab_canonical_brains/Canonical_brains_surfaces/keuken_2014_enhanced_for_underlay.img,1 Grouping contiguous voxels: 1 regions Grouping contiguous voxels: 1 regions Grouping contiguous voxels: 1 regions
wh_outlier_uncorr = 97×1 logical array
0 0 1 0 0 0 0 0 1 0
wh_outlier_corr = 97×1 logical array
0 0 1 0 0 0 0 0 0 0

Vicarious > PC :: run robfit

set(gcf,'Visible','on')
figure ('Visible', 'on');
drawnow, snapnow;

Vicarious > PC :: remove outliers based on plot

con = con_data_obj;
disp(strcat("current length is ", num2str(size(con_data_obj.dat,2))))
current length is 97
%for s = 1:length(wh_outlier_corr)
% disp(strcat("-------subject", num2str(s), "------"))
con.dat = con_data_obj.dat(:,~wh_outlier_corr);
con.image_names = con_data_obj.image_names(~wh_outlier_corr,:)
con =
fmri_data with properties: source_notes: 'Info about image source here' X: [] mask: [1×1 fmri_mask_image] mask_descrip: 'REMOVED: CHANGED SPACE' images_per_session: [] Y: [] Y_names: [] Y_descrip: 'Behavioral or outcome data matrix.' covariates: [] covariate_names: {''} covariates_descrip: 'Nuisance covariates associated with data' history_descrip: 'Cell array of names of methods applied to this data, in order' additional_info: [0×0 struct] metadata_table: [0×0 table] dat: [99837×93 single] dat_descrip: [] volInfo: [1×1 struct] removed_voxels: 0 removed_images: 0 image_names: [93×21 char] fullpath: [97×112 char] files_exist: [97×1 logical] history: {'' 'Sampled to space of /Volumes/spacetop_projects_cue/analysis/fmri/spm/univariate/model02_CESO/1stlevel/sub-0013/sub-0013_con_0002.nii' 'Masked with REMOVED: CHANGED SPACE' 'Checked image files exist. All exist = 1'}
con.fullpath = con_data_obj.fullpath(~wh_outlier_corr,:)
con =
fmri_data with properties: source_notes: 'Info about image source here' X: [] mask: [1×1 fmri_mask_image] mask_descrip: 'REMOVED: CHANGED SPACE' images_per_session: [] Y: [] Y_names: [] Y_descrip: 'Behavioral or outcome data matrix.' covariates: [] covariate_names: {''} covariates_descrip: 'Nuisance covariates associated with data' history_descrip: 'Cell array of names of methods applied to this data, in order' additional_info: [0×0 struct] metadata_table: [0×0 table] dat: [99837×93 single] dat_descrip: [] volInfo: [1×1 struct] removed_voxels: 0 removed_images: 0 image_names: [93×21 char] fullpath: [93×112 char] files_exist: [97×1 logical] history: {'' 'Sampled to space of /Volumes/spacetop_projects_cue/analysis/fmri/spm/univariate/model02_CESO/1stlevel/sub-0013/sub-0013_con_0002.nii' 'Masked with REMOVED: CHANGED SPACE' 'Checked image files exist. All exist = 1'}
con.files_exist = con_data_obj.files_exist(~wh_outlier_corr,:)
con =
fmri_data with properties: source_notes: 'Info about image source here' X: [] mask: [1×1 fmri_mask_image] mask_descrip: 'REMOVED: CHANGED SPACE' images_per_session: [] Y: [] Y_names: [] Y_descrip: 'Behavioral or outcome data matrix.' covariates: [] covariate_names: {''} covariates_descrip: 'Nuisance covariates associated with data' history_descrip: 'Cell array of names of methods applied to this data, in order' additional_info: [0×0 struct] metadata_table: [0×0 table] dat: [99837×93 single] dat_descrip: [] volInfo: [1×1 struct] removed_voxels: 0 removed_images: 0 image_names: [93×21 char] fullpath: [93×112 char] files_exist: [93×1 logical] history: {'' 'Sampled to space of /Volumes/spacetop_projects_cue/analysis/fmri/spm/univariate/model02_CESO/1stlevel/sub-0013/sub-0013_con_0002.nii' 'Masked with REMOVED: CHANGED SPACE' 'Checked image files exist. All exist = 1'}
%end
disp(strcat("after removing ", num2str(sum(wh_outlier_corr)), " participants, size is now ",num2str(size(con.dat,2))))
after removing 4 participants, size is now 93

Vicarious > PC :: plot diagnostics, after l2norm

imgs2 = con.rescale('l2norm_images');

Vicarious > PC :: ttest

t = ttest(imgs2);
One-sample t-test Calculating t-statistics and p-values
orthviews(t);
SPM12: spm_check_registration (v7759) 23:35:21 - 21/10/2023 ======================================================================== Display /Users/h/Documents/MATLAB/CanlabCore/CanlabCore/canlab_canonical_brains/Canonical_brains_surfaces/keuken_2014_enhanced_for_underlay.img,1
drawnow, snapnow;
 
fdr_t = threshold(t, .05, 'fdr');
Image 1 FDR q < 0.050 threshold is 0.027170 Image 1 41 contig. clusters, sizes 1 to 53082 Positive effect: 5686 voxels, min p-value: 0.00000000 Negative effect: 48564 voxels, min p-value: 0.00000000
orthviews(fdr_t);
SPM12: spm_check_registration (v7759) 23:35:23 - 21/10/2023 ======================================================================== Display /Users/h/Documents/MATLAB/CanlabCore/CanlabCore/canlab_canonical_brains/Canonical_brains_surfaces/keuken_2014_enhanced_for_underlay.img,1
drawnow, snapnow;
 
fdr_t = threshold(t, .001, 'fdr');
Image 1 FDR q < 0.001 threshold is 0.000286 Image 1 61 contig. clusters, sizes 1 to 26710 Positive effect: 1396 voxels, min p-value: 0.00000000 Negative effect: 27169 voxels, min p-value: 0.00000000
orthviews(fdr_t);
SPM12: spm_check_registration (v7759) 23:35:24 - 21/10/2023 ======================================================================== Display /Users/h/Documents/MATLAB/CanlabCore/CanlabCore/canlab_canonical_brains/Canonical_brains_surfaces/keuken_2014_enhanced_for_underlay.img,1
drawnow, snapnow;
 
create_figure('montage'); axis off;
montage(fdr_t);
Setting up fmridisplay objects sagittal montage: 784 voxels displayed, 27781 not displayed on these slices sagittal montage: 939 voxels displayed, 27626 not displayed on these slices sagittal montage: 763 voxels displayed, 27802 not displayed on these slices axial montage: 5495 voxels displayed, 23070 not displayed on these slices axial montage: 5930 voxels displayed, 22635 not displayed on these slices
drawnow, snapnow;
write(fdr_t, 'fname', strcat('/Users/h/Desktop/', contrast_of_interest, '_fdr_t.nii'), 'overwrite');
Writing: /Users/h/Desktop/cue_V_fdr_t.nii

Vicarious > PC :: Neurosynth similarity

[image_by_feature_correlations, top_feature_tables] = neurosynth_feature_labels( mean(imgs2), 'images_are_replicates', false, 'noverbose');
Input image 1 fullpath_was_empty _____________________________________________________________________ testr_low words_low testr_high words_high _________ ____________________ __________ _______________ -0.25178 {'retrieved' } 0.16436 {'stimulation'} -0.24552 {'mentalizing' } 0.15898 {'frequency' } -0.2362 {'videos' } 0.13919 {'sequence' } -0.23605 {'autobiographical'} 0.13276 {'acquisition'} -0.23323 {'selfreferential' } 0.12753 {'muscle' } -0.23182 {'default' } 0.12341 {'adaptation' } -0.23149 {'unattended' } 0.1184 {'training' } -0.22738 {'autistic' } 0.10879 {'motor' } -0.2235 {'episodic' } 0.10848 {'pain' } -0.21888 {'engagement' } 0.10601 {'speech' }
% [image_by_feature_correlations, top_feature_tables] = neurosynth_feature_labels( m, 'images_are_replicates', false, 'noverbose');
Vicarious > PC :: Pattern Phil
[obj, names] = load_image_set('pain_cog_emo');
Loaded images: /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_pMCC_Pain.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_aMCC_Pain.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_pACC_Pain.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_sgACC_Pain.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_vmPFC_Pain.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_dMFC_Pain.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_MFC_Pain.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_Wholebrain_Pain.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_pMCC_Cognitive_Control.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_aMCC_Cognitive_Control.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_pACC_Cognitive_Control.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_sgACC_Cognitive_Control.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_vmPFC_Cognitive_Control.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_dMFC_Cognitive_Control.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_MFC_Cognitive_Control.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_Wholebrain_Cognitive_Control.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_pMCC_Negative_Emotion.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_aMCC_Negative_Emotion.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_pACC_Negative_Emotion.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_sgACC_Negative_Emotion.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_vmPFC_Negative_Emotion.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_dMFC_Negative_Emotion.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_MFC_Negative_Emotion.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_Wholebrain_Negative_Emotion.nii
bpls_wholebrain = get_wh_image(obj, [8 16 24]);
names_wholebrain = names([8 16 24]);
create_figure('Kragel Pain-Cog-Emo maps', 1, 3);
 
stats = image_similarity_plot(con_data_obj, 'average', 'mapset', bpls_wholebrain, 'networknames', names_wholebrain, 'nofigure');
Table of correlations Group:1 -------------------------------------- T-test on Fisher's r to Z transformed point-biserial correlations R_avg T P sig Pain Wholebrain 0.0472 8.0720 0.0000 1.0000 Cog Wholebrain -0.0132 -3.8071 0.0002 1.0000 Emo Wholebrain -0.0329 -6.1746 0.0000 1.0000
axis image
 
subplot(1, 3, 2)
 
barplot_columns(stats.r', 'nofigure', 'colors', {[1 .9 0] [.2 .2 1] [1 .2 .2]}, 'names', names_wholebrain)
Col 1: Pain Wholebrain Col 2: Cog Wholebrain Col 3: Emo Wholebrain --------------------------------------------- Tests of column means against zero --------------------------------------------- Name Mean_Value Std_Error T P Cohens_d ___________________ __________ _________ _______ __________ ________ {'Pain Wholebrain'} 0.047243 0.0058426 8.0861 1.8675e-12 0.82101 {'Cog Wholebrain' } -0.013203 0.0034652 -3.8102 0.00024497 -0.38687 {'Emo Wholebrain' } -0.03289 0.0053211 -6.181 1.5421e-08 -0.62759
ans = struct with fields:
fig_han: [1×1 struct] axis_han: [1×1 Axes] bar_han1: [1×1 Bar] bar_han: {[1×1 Bar] [1×1 Bar] [1×1 Bar]} errorbar_han: {[1×1 ErrorBar] [1×1 ErrorBar] [1×1 ErrorBar]} point_han1: {97×3 cell} text_han: {97×3 cell} point_han: {97×3 cell} star_handles: [4.0007 6.0006 7.0006]
set(gca, 'FontSize', 14)
ylabel('Pattern similarity (r)');
title('Similarity (r) with patterns')
 
test_data_obj = resample_space(con_data_obj, bpls_wholebrain);
 
clear csim
for i = 1:3
 
csim(:, i) = canlab_pattern_similarity(test_data_obj.dat, bpls_wholebrain.dat(:, i), 'cosine_similarity');
 
end
Warning: Some images have zero values in some of the 411578 voxels in weight mask. These will be excluded from similarity analysis image-wise. Number of zero or NaN values within weight mask, by input image: 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 Warning: Some images have zero values in some of the 411578 voxels in weight mask. These will be excluded from similarity analysis image-wise. Number of zero or NaN values within weight mask, by input image: 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 Warning: Some images have zero values in some of the 411578 voxels in weight mask. These will be excluded from similarity analysis image-wise. Number of zero or NaN values within weight mask, by input image: 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83
 
subplot(1, 3, 3)
 
barplot_columns(csim, 'nofigure', 'colors', {[1 .9 0] [.2 .2 1] [1 .2 .2]}, 'names', names_wholebrain)
Col 1: Pain Wholebrain Col 2: Cog Wholebrain Col 3: Emo Wholebrain --------------------------------------------- Tests of column means against zero --------------------------------------------- Name Mean_Value Std_Error T P Cohens_d ___________________ __________ _________ _______ __________ ________ {'Pain Wholebrain'} 0.044794 0.0056325 7.9529 3.5736e-12 0.80749 {'Cog Wholebrain' } -0.013773 0.0032638 -4.22 5.5441e-05 -0.42847 {'Emo Wholebrain' } -0.030228 0.0052118 -5.7999 8.4831e-08 -0.58889
ans = struct with fields:
fig_han: [1×1 struct] axis_han: [1×1 Axes] bar_han1: [1×1 Bar] bar_han: {[1×1 Bar] [1×1 Bar] [1×1 Bar]} errorbar_han: {[1×1 ErrorBar] [1×1 ErrorBar] [1×1 ErrorBar]} point_han1: {97×3 cell} text_han: {97×3 cell} point_han: {97×3 cell} star_handles: [12.0012 13.0012 14.0012]
set(gca, 'FontSize', 14)
ylabel('Pattern similarity (cosine sim)');
title('Pattern response (cosine similarity)')

Cognitive > (Pain & Vicarious)

Cognitive > PV :: load dataset

contrast_of_interest = 'cue_C';
 
mount_dir = '/Volumes/spacetop_projects_cue/analysis/fmri/spm/univariate/model02_CESO/1stlevel';
contrast_name = {'cue_P', 'cue_V', 'cue_C', 'cue_G',...
'stim_P', 'stim_V', 'stim_C', 'stim_G',...
'motor', ...
'simple_cue_P', 'simple_cue_V', 'simple_cue_C', ...
'simple_stim_P', 'simple_stim_V', 'simple_stim_C'
};
 
index = find(strcmp(contrast_name, contrast_of_interest));
con_name = sprintf('*con_%04d.nii', index);
con_list = dir(fullfile(mount_dir, '*', con_name));
spm('Defaults','fMRI')
con_fldr = {con_list.folder}; fname = {con_list.name};
con_files = strcat(con_fldr,'/', fname)';
con_data_obj = fmri_data(con_files);
Using default mask: /Users/h/Documents/MATLAB/CanlabCore/CanlabCore/canlab_canonical_brains/Canonical_brains_surfaces/brainmask_canlab.nii loading mask. mapping volumes. checking that dimensions and voxel sizes of volumes are the same. Pre-allocating data array. Needed: 38736756 bytes Loading image number: 97 Elapsed time is 3.112044 seconds. Image names entered, but fullpath attribute is empty. Getting path info. Number of unique values in dataset: 9157972 Bit rate: 23.13 bits

Cognitive > PV :: check data coverage

m = mean(con_data_obj);
m.dat = sum(~isnan(con_data_obj.dat) & con_data_obj.dat ~= 0, 2);
orthviews(m, 'trans') % display
SPM12: spm_check_registration (v7759) 23:36:14 - 21/10/2023 ======================================================================== Display /Users/h/Documents/MATLAB/CanlabCore/CanlabCore/canlab_canonical_brains/Canonical_brains_surfaces/keuken_2014_enhanced_for_underlay.img,1 Grouping contiguous voxels: 1 regions
ans = 1×1 cell array
{1×1 region}

Cognitive > PV :: Plot diagnostics, before l2norm

drawnow; snapnow
 
[wh_outlier_uncorr, wh_outlier_corr] = plot(con_data_obj)
______________________________________________________________ Outlier analysis ______________________________________________________________ global mean | global mean to var | spatial MAD | Missing values | 0 images Retained 4 components for mahalanobis distance Expected 50% of points within 50% normal ellipsoid, found 19.59% Expected 4.85 outside 95% ellipsoid, found 6 Potential outliers based on mahalanobis distance: Bonferroni corrected: 2 images Cases 3 54 Uncorrected: 6 images Cases 3 17 25 54 81 86 Retained 15 components for mahalanobis distance Expected 50% of points within 50% normal ellipsoid, found 51.55% Expected 4.85 outside 95% ellipsoid, found 2 Potential outliers based on mahalanobis distance: Bonferroni corrected: 0 images Cases Uncorrected: 2 images Cases 45 92 Mahalanobis (cov and corr, q<0.05 corrected): 2 images Outlier_count Percentage _____________ __________ global_mean 4 4.1237 global_mean_to_variance 1 1.0309 missing_values 0 0 rmssd_dvars 0 0 spatial_variability 3 3.0928 mahal_cov_uncor 6 6.1856 mahal_cov_corrected 2 2.0619 mahal_corr_uncor 2 2.0619 mahal_corr_corrected 0 0 Overall_uncorrected 9 9.2784 Overall_corrected 3 3.0928
SPM12: spm_check_registration (v7759) 23:36:43 - 21/10/2023 ======================================================================== Display /Users/h/Documents/MATLAB/CanlabCore/CanlabCore/canlab_canonical_brains/Canonical_brains_surfaces/keuken_2014_enhanced_for_underlay.img,1 (all) /Users/h/Documents/MATLAB/CanlabCore/CanlabCore/canlab_canonical_brains/Canonical_brains_surfaces/keuken_2014_enhanced_for_underlay.img,1 /Users/h/Documents/MATLAB/CanlabCore/CanlabCore/canlab_canonical_brains/Canonical_brains_surfaces/keuken_2014_enhanced_for_underlay.img,1 Grouping contiguous voxels: 1 regions Grouping contiguous voxels: 1 regions Grouping contiguous voxels: 1 regions
wh_outlier_uncorr = 97×1 logical array
0 0 1 0 0 0 0 0 0 0
wh_outlier_corr = 97×1 logical array
0 0 1 0 0 0 0 0 0 0

Cognitive > PV :: run robfit

set(gcf,'Visible','on')
figure ('Visible', 'on');
drawnow, snapnow;

Cognitive > PV :: remove outliers based on plot

con = con_data_obj;
disp(strcat("current length is ", num2str(size(con_data_obj.dat,2))))
current length is 97
%for s = 1:length(wh_outlier_corr)
% disp(strcat("-------subject", num2str(s), "------"))
con.dat = con_data_obj.dat(:,~wh_outlier_corr);
con.image_names = con_data_obj.image_names(~wh_outlier_corr,:)
con =
fmri_data with properties: source_notes: 'Info about image source here' X: [] mask: [1×1 fmri_mask_image] mask_descrip: 'REMOVED: CHANGED SPACE' images_per_session: [] Y: [] Y_names: [] Y_descrip: 'Behavioral or outcome data matrix.' covariates: [] covariate_names: {''} covariates_descrip: 'Nuisance covariates associated with data' history_descrip: 'Cell array of names of methods applied to this data, in order' additional_info: [0×0 struct] metadata_table: [0×0 table] dat: [99837×94 single] dat_descrip: [] volInfo: [1×1 struct] removed_voxels: 0 removed_images: 0 image_names: [94×21 char] fullpath: [97×112 char] files_exist: [97×1 logical] history: {'' 'Sampled to space of /Volumes/spacetop_projects_cue/analysis/fmri/spm/univariate/model02_CESO/1stlevel/sub-0013/sub-0013_con_0003.nii' 'Masked with REMOVED: CHANGED SPACE' 'Checked image files exist. All exist = 1'}
con.fullpath = con_data_obj.fullpath(~wh_outlier_corr,:)
con =
fmri_data with properties: source_notes: 'Info about image source here' X: [] mask: [1×1 fmri_mask_image] mask_descrip: 'REMOVED: CHANGED SPACE' images_per_session: [] Y: [] Y_names: [] Y_descrip: 'Behavioral or outcome data matrix.' covariates: [] covariate_names: {''} covariates_descrip: 'Nuisance covariates associated with data' history_descrip: 'Cell array of names of methods applied to this data, in order' additional_info: [0×0 struct] metadata_table: [0×0 table] dat: [99837×94 single] dat_descrip: [] volInfo: [1×1 struct] removed_voxels: 0 removed_images: 0 image_names: [94×21 char] fullpath: [94×112 char] files_exist: [97×1 logical] history: {'' 'Sampled to space of /Volumes/spacetop_projects_cue/analysis/fmri/spm/univariate/model02_CESO/1stlevel/sub-0013/sub-0013_con_0003.nii' 'Masked with REMOVED: CHANGED SPACE' 'Checked image files exist. All exist = 1'}
con.files_exist = con_data_obj.files_exist(~wh_outlier_corr,:)
con =
fmri_data with properties: source_notes: 'Info about image source here' X: [] mask: [1×1 fmri_mask_image] mask_descrip: 'REMOVED: CHANGED SPACE' images_per_session: [] Y: [] Y_names: [] Y_descrip: 'Behavioral or outcome data matrix.' covariates: [] covariate_names: {''} covariates_descrip: 'Nuisance covariates associated with data' history_descrip: 'Cell array of names of methods applied to this data, in order' additional_info: [0×0 struct] metadata_table: [0×0 table] dat: [99837×94 single] dat_descrip: [] volInfo: [1×1 struct] removed_voxels: 0 removed_images: 0 image_names: [94×21 char] fullpath: [94×112 char] files_exist: [94×1 logical] history: {'' 'Sampled to space of /Volumes/spacetop_projects_cue/analysis/fmri/spm/univariate/model02_CESO/1stlevel/sub-0013/sub-0013_con_0003.nii' 'Masked with REMOVED: CHANGED SPACE' 'Checked image files exist. All exist = 1'}
%end
disp(strcat("after removing ", num2str(sum(wh_outlier_corr)), " participants, size is now ",num2str(size(con.dat,2))))
after removing 3 participants, size is now 94

Cognitive > PV:: plot diagnostics, after l2norm

imgs2 = con.rescale('l2norm_images');

Cognitive > PV :: ttest

t = ttest(imgs2);
One-sample t-test Calculating t-statistics and p-values
orthviews(t);
SPM12: spm_check_registration (v7759) 23:36:48 - 21/10/2023 ======================================================================== Display /Users/h/Documents/MATLAB/CanlabCore/CanlabCore/canlab_canonical_brains/Canonical_brains_surfaces/keuken_2014_enhanced_for_underlay.img,1
drawnow, snapnow;
 
fdr_t = threshold(t, .05, 'fdr');
Image 1 FDR q < 0.050 threshold is 0.024265 Image 1 72 contig. clusters, sizes 1 to 44657 Positive effect: 8930 voxels, min p-value: 0.00000000 Negative effect: 39540 voxels, min p-value: 0.00000000
orthviews(fdr_t);
SPM12: spm_check_registration (v7759) 23:36:50 - 21/10/2023 ======================================================================== Display /Users/h/Documents/MATLAB/CanlabCore/CanlabCore/canlab_canonical_brains/Canonical_brains_surfaces/keuken_2014_enhanced_for_underlay.img,1
drawnow, snapnow;
 
fdr_t = threshold(t, .001, 'fdr');
Image 1 FDR q < 0.001 threshold is 0.000262 Image 1 69 contig. clusters, sizes 1 to 21376 Positive effect: 3316 voxels, min p-value: 0.00000000 Negative effect: 22904 voxels, min p-value: 0.00000000
orthviews(fdr_t);
SPM12: spm_check_registration (v7759) 23:36:51 - 21/10/2023 ======================================================================== Display /Users/h/Documents/MATLAB/CanlabCore/CanlabCore/canlab_canonical_brains/Canonical_brains_surfaces/keuken_2014_enhanced_for_underlay.img,1
drawnow, snapnow;
 
create_figure('montage'); axis off;
montage(fdr_t);
Setting up fmridisplay objects sagittal montage: 755 voxels displayed, 25465 not displayed on these slices sagittal montage: 648 voxels displayed, 25572 not displayed on these slices sagittal montage: 764 voxels displayed, 25456 not displayed on these slices axial montage: 4974 voxels displayed, 21246 not displayed on these slices axial montage: 5429 voxels displayed, 20791 not displayed on these slices
drawnow, snapnow;
write(fdr_t, 'fname', strcat('/Users/h/Desktop/', contrast_of_interest, '_fdr_t.nii'), 'overwrite');
Writing: /Users/h/Desktop/cue_C_fdr_t.nii
 
 

Cognitive > PV :: Neurosynth similarity

[image_by_feature_correlations, top_feature_tables] = neurosynth_feature_labels( mean(imgs2), 'images_are_replicates', false, 'noverbose');
Input image 1 fullpath_was_empty _____________________________________________________________________ testr_low words_low testr_high words_high _________ ________________ __________ _________________ -0.31679 {'memory' } 0.33044 {'stimulation' } -0.30883 {'retrieval' } 0.2852 {'somatosensory'} -0.2601 {'mental' } 0.276 {'muscle' } -0.24537 {'episodic' } 0.2571 {'motor' } -0.24006 {'knowledge' } 0.24823 {'sensory' } -0.23832 {'default' } 0.22474 {'foot' } -0.23764 {'judgments' } 0.22133 {'movements' } -0.23695 {'recollection'} 0.21196 {'production' } -0.2343 {'person' } 0.20961 {'sensorimotor' } -0.23345 {'correct' } 0.20779 {'hand' }
% [image_by_feature_correlations, top_feature_tables] = neurosynth_feature_labels( m, 'images_are_replicates', false, 'noverbose');
Cognitive > PV :: Pattern Phil
[obj, names] = load_image_set('pain_cog_emo');
Loaded images: /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_pMCC_Pain.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_aMCC_Pain.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_pACC_Pain.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_sgACC_Pain.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_vmPFC_Pain.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_dMFC_Pain.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_MFC_Pain.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_Wholebrain_Pain.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_pMCC_Cognitive_Control.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_aMCC_Cognitive_Control.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_pACC_Cognitive_Control.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_sgACC_Cognitive_Control.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_vmPFC_Cognitive_Control.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_dMFC_Cognitive_Control.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_MFC_Cognitive_Control.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_Wholebrain_Cognitive_Control.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_pMCC_Negative_Emotion.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_aMCC_Negative_Emotion.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_pACC_Negative_Emotion.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_sgACC_Negative_Emotion.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_vmPFC_Negative_Emotion.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_dMFC_Negative_Emotion.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_MFC_Negative_Emotion.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_Wholebrain_Negative_Emotion.nii
bpls_wholebrain = get_wh_image(obj, [8 16 24]);
names_wholebrain = names([8 16 24]);
create_figure('Kragel Pain-Cog-Emo maps', 1, 3);
 
stats = image_similarity_plot(con_data_obj, 'average', 'mapset', bpls_wholebrain, 'networknames', names_wholebrain, 'nofigure');
Table of correlations Group:1 -------------------------------------- T-test on Fisher's r to Z transformed point-biserial correlations R_avg T P sig Pain Wholebrain 0.0514 8.6831 0.0000 1.0000 Cog Wholebrain -0.0065 -1.6867 0.0949 0.0000 Emo Wholebrain -0.0429 -7.0160 0.0000 1.0000
axis image
 
subplot(1, 3, 2)
 
barplot_columns(stats.r', 'nofigure', 'colors', {[1 .9 0] [.2 .2 1] [1 .2 .2]}, 'names', names_wholebrain)
Col 1: Pain Wholebrain Col 2: Cog Wholebrain Col 3: Emo Wholebrain --------------------------------------------- Tests of column means against zero --------------------------------------------- Name Mean_Value Std_Error T P Cohens_d ___________________ __________ _________ _______ __________ ________ {'Pain Wholebrain'} 0.051441 0.0059147 8.6971 9.3259e-14 0.88306 {'Cog Wholebrain' } -0.0064702 0.0038369 -1.6863 0.094984 -0.17122 {'Emo Wholebrain' } -0.042893 0.0061078 -7.0225 3.1192e-10 -0.71303
ans = struct with fields:
fig_han: [1×1 struct] axis_han: [1×1 Axes] bar_han1: [1×1 Bar] bar_han: {[1×1 Bar] [1×1 Bar] [1×1 Bar]} errorbar_han: {[1×1 ErrorBar] [1×1 ErrorBar] [1×1 ErrorBar]} point_han1: {97×3 cell} text_han: {97×3 cell} point_han: {97×3 cell} star_handles: [4.0009 6.0007 7.0007]
set(gca, 'FontSize', 14)
ylabel('Pattern similarity (r)');
title('Similarity (r) with patterns')
 
test_data_obj = resample_space(con_data_obj, bpls_wholebrain);
 
clear csim
for i = 1:3
 
csim(:, i) = canlab_pattern_similarity(test_data_obj.dat, bpls_wholebrain.dat(:, i), 'cosine_similarity');
 
end
Warning: Some images have zero values in some of the 411578 voxels in weight mask. These will be excluded from similarity analysis image-wise. Number of zero or NaN values within weight mask, by input image: 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 Warning: Some images have zero values in some of the 411578 voxels in weight mask. These will be excluded from similarity analysis image-wise. Number of zero or NaN values within weight mask, by input image: 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 Warning: Some images have zero values in some of the 411578 voxels in weight mask. These will be excluded from similarity analysis image-wise. Number of zero or NaN values within weight mask, by input image: 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83
 
subplot(1, 3, 3)
 
barplot_columns(csim, 'nofigure', 'colors', {[1 .9 0] [.2 .2 1] [1 .2 .2]}, 'names', names_wholebrain)
Col 1: Pain Wholebrain Col 2: Cog Wholebrain Col 3: Emo Wholebrain --------------------------------------------- Tests of column means against zero --------------------------------------------- Name Mean_Value Std_Error T P Cohens_d ___________________ __________ _________ _______ __________ ________ {'Pain Wholebrain'} 0.048877 0.0056802 8.6048 1.4688e-13 0.87368 {'Cog Wholebrain' } -0.0068064 0.0036232 -1.8786 0.063335 -0.19074 {'Emo Wholebrain' } -0.040557 0.0059892 -6.7717 1.0147e-09 -0.68756
ans = struct with fields:
fig_han: [1×1 struct] axis_han: [1×1 Axes] bar_han1: [1×1 Bar] bar_han: {[1×1 Bar] [1×1 Bar] [1×1 Bar]} errorbar_han: {[1×1 ErrorBar] [1×1 ErrorBar] [1×1 ErrorBar]} point_han1: {97×3 cell} text_han: {97×3 cell} point_han: {97×3 cell} star_handles: [12.0013 13.0013 14.0013]
set(gca, 'FontSize', 14)
ylabel('Pattern similarity (cosine sim)');
title('Pattern response (cosine similarity)')

Domain General

General :: load dataset

contrast_of_interest = 'cue_G';
 
mount_dir = '/Volumes/spacetop_projects_cue/analysis/fmri/spm/univariate/model02_CESO/1stlevel';
contrast_name = {'cue_P', 'cue_V', 'cue_C', 'cue_G',...
'stim_P', 'stim_V', 'stim_C', 'stim_G',...
'motor', ...
'simple_cue_P', 'simple_cue_V', 'simple_cue_C', ...
'simple_stim_P', 'simple_stim_V', 'simple_stim_C'
};
 
index = find(strcmp(contrast_name, contrast_of_interest));
con_name = sprintf('*con_%04d.nii', index);
con_list = dir(fullfile(mount_dir, '*', con_name));
spm('Defaults','fMRI')
con_fldr = {con_list.folder}; fname = {con_list.name};
con_files = strcat(con_fldr,'/', fname)';
con_data_obj = fmri_data(con_files);
Using default mask: /Users/h/Documents/MATLAB/CanlabCore/CanlabCore/canlab_canonical_brains/Canonical_brains_surfaces/brainmask_canlab.nii loading mask. mapping volumes. checking that dimensions and voxel sizes of volumes are the same. Pre-allocating data array. Needed: 38736756 bytes Loading image number: 97 Elapsed time is 3.326650 seconds. Image names entered, but fullpath attribute is empty. Getting path info. Number of unique values in dataset: 9183367 Bit rate: 23.13 bits

General :: check data coverage

m = mean(con_data_obj);
m.dat = sum(~isnan(con_data_obj.dat) & con_data_obj.dat ~= 0, 2);
orthviews(m, 'trans') % display
SPM12: spm_check_registration (v7759) 23:37:27 - 21/10/2023 ======================================================================== Display /Users/h/Documents/MATLAB/CanlabCore/CanlabCore/canlab_canonical_brains/Canonical_brains_surfaces/keuken_2014_enhanced_for_underlay.img,1 Grouping contiguous voxels: 1 regions
ans = 1×1 cell array
{1×1 region}

General :: Plot diagnostics, before l2norm

drawnow; snapnow
 
[wh_outlier_uncorr, wh_outlier_corr] = plot(con_data_obj)
______________________________________________________________ Outlier analysis ______________________________________________________________ global mean | global mean to var | spatial MAD | Missing values | 0 images Retained 5 components for mahalanobis distance Expected 50% of points within 50% normal ellipsoid, found 38.14% Expected 4.85 outside 95% ellipsoid, found 10 Potential outliers based on mahalanobis distance: Bonferroni corrected: 1 images Cases 60 Uncorrected: 10 images Cases 1 3 29 60 67 68 80 86 88 96 Retained 9 components for mahalanobis distance Expected 50% of points within 50% normal ellipsoid, found 44.33% Expected 4.85 outside 95% ellipsoid, found 6 Potential outliers based on mahalanobis distance: Bonferroni corrected: 0 images Cases Uncorrected: 6 images Cases 44 54 57 80 84 88 Mahalanobis (cov and corr, q<0.05 corrected): 1 images Outlier_count Percentage _____________ __________ global_mean 3 3.0928 global_mean_to_variance 3 3.0928 missing_values 0 0 rmssd_dvars 0 0 spatial_variability 2 2.0619 mahal_cov_uncor 10 10.309 mahal_cov_corrected 1 1.0309 mahal_corr_uncor 6 6.1856 mahal_corr_corrected 0 0 Overall_uncorrected 14 14.433 Overall_corrected 2 2.0619
SPM12: spm_check_registration (v7759) 23:37:58 - 21/10/2023 ======================================================================== Display /Users/h/Documents/MATLAB/CanlabCore/CanlabCore/canlab_canonical_brains/Canonical_brains_surfaces/keuken_2014_enhanced_for_underlay.img,1 (all) /Users/h/Documents/MATLAB/CanlabCore/CanlabCore/canlab_canonical_brains/Canonical_brains_surfaces/keuken_2014_enhanced_for_underlay.img,1 /Users/h/Documents/MATLAB/CanlabCore/CanlabCore/canlab_canonical_brains/Canonical_brains_surfaces/keuken_2014_enhanced_for_underlay.img,1 Grouping contiguous voxels: 1 regions Grouping contiguous voxels: 1 regions Grouping contiguous voxels: 1 regions
wh_outlier_uncorr = 97×1 logical array
1 0 1 0 0 0 0 0 0 0
wh_outlier_corr = 97×1 logical array
0 0 0 0 0 0 0 0 0 0

Cognitive > PV :: run robfit

set(gcf,'Visible','on')
figure ('Visible', 'on');
drawnow, snapnow;

General:: remove outliers based on plot

con = con_data_obj;
disp(strcat("current length is ", num2str(size(con_data_obj.dat,2))))
current length is 97
%for s = 1:length(wh_outlier_corr)
% disp(strcat("-------subject", num2str(s), "------"))
con.dat = con_data_obj.dat(:,~wh_outlier_corr);
con.image_names = con_data_obj.image_names(~wh_outlier_corr,:)
con =
fmri_data with properties: source_notes: 'Info about image source here' X: [] mask: [1×1 fmri_mask_image] mask_descrip: 'REMOVED: CHANGED SPACE' images_per_session: [] Y: [] Y_names: [] Y_descrip: 'Behavioral or outcome data matrix.' covariates: [] covariate_names: {''} covariates_descrip: 'Nuisance covariates associated with data' history_descrip: 'Cell array of names of methods applied to this data, in order' additional_info: [0×0 struct] metadata_table: [0×0 table] dat: [99837×95 single] dat_descrip: [] volInfo: [1×1 struct] removed_voxels: 0 removed_images: 0 image_names: [95×21 char] fullpath: [97×112 char] files_exist: [97×1 logical] history: {'' 'Sampled to space of /Volumes/spacetop_projects_cue/analysis/fmri/spm/univariate/model02_CESO/1stlevel/sub-0013/sub-0013_con_0004.nii' 'Masked with REMOVED: CHANGED SPACE' 'Checked image files exist. All exist = 1'}
con.fullpath = con_data_obj.fullpath(~wh_outlier_corr,:)
con =
fmri_data with properties: source_notes: 'Info about image source here' X: [] mask: [1×1 fmri_mask_image] mask_descrip: 'REMOVED: CHANGED SPACE' images_per_session: [] Y: [] Y_names: [] Y_descrip: 'Behavioral or outcome data matrix.' covariates: [] covariate_names: {''} covariates_descrip: 'Nuisance covariates associated with data' history_descrip: 'Cell array of names of methods applied to this data, in order' additional_info: [0×0 struct] metadata_table: [0×0 table] dat: [99837×95 single] dat_descrip: [] volInfo: [1×1 struct] removed_voxels: 0 removed_images: 0 image_names: [95×21 char] fullpath: [95×112 char] files_exist: [97×1 logical] history: {'' 'Sampled to space of /Volumes/spacetop_projects_cue/analysis/fmri/spm/univariate/model02_CESO/1stlevel/sub-0013/sub-0013_con_0004.nii' 'Masked with REMOVED: CHANGED SPACE' 'Checked image files exist. All exist = 1'}
con.files_exist = con_data_obj.files_exist(~wh_outlier_corr,:)
con =
fmri_data with properties: source_notes: 'Info about image source here' X: [] mask: [1×1 fmri_mask_image] mask_descrip: 'REMOVED: CHANGED SPACE' images_per_session: [] Y: [] Y_names: [] Y_descrip: 'Behavioral or outcome data matrix.' covariates: [] covariate_names: {''} covariates_descrip: 'Nuisance covariates associated with data' history_descrip: 'Cell array of names of methods applied to this data, in order' additional_info: [0×0 struct] metadata_table: [0×0 table] dat: [99837×95 single] dat_descrip: [] volInfo: [1×1 struct] removed_voxels: 0 removed_images: 0 image_names: [95×21 char] fullpath: [95×112 char] files_exist: [95×1 logical] history: {'' 'Sampled to space of /Volumes/spacetop_projects_cue/analysis/fmri/spm/univariate/model02_CESO/1stlevel/sub-0013/sub-0013_con_0004.nii' 'Masked with REMOVED: CHANGED SPACE' 'Checked image files exist. All exist = 1'}
%end
disp(strcat("after removing ", num2str(sum(wh_outlier_corr)), " participants, size is now ",num2str(size(con.dat,2))))
after removing 2 participants, size is now 95

General:: plot diagnostics, after l2norm

imgs2 = con.rescale('l2norm_images');

General :: ttest

t = ttest(imgs2);
One-sample t-test Calculating t-statistics and p-values
orthviews(t);
SPM12: spm_check_registration (v7759) 23:38:02 - 21/10/2023 ======================================================================== Display /Users/h/Documents/MATLAB/CanlabCore/CanlabCore/canlab_canonical_brains/Canonical_brains_surfaces/keuken_2014_enhanced_for_underlay.img,1
drawnow, snapnow;
 
fdr_t = threshold(t, .05, 'fdr');
Image 1 FDR q < 0.050 threshold is 0.036076 Image 1 20 contig. clusters, sizes 1 to 71887 Positive effect: 55311 voxels, min p-value: 0.00000000 Negative effect: 16743 voxels, min p-value: 0.00000000
orthviews(fdr_t);
SPM12: spm_check_registration (v7759) 23:38:03 - 21/10/2023 ======================================================================== Display /Users/h/Documents/MATLAB/CanlabCore/CanlabCore/canlab_canonical_brains/Canonical_brains_surfaces/keuken_2014_enhanced_for_underlay.img,1
drawnow, snapnow;
 
fdr_t = threshold(t, .001, 'fdr');
Image 1 FDR q < 0.001 threshold is 0.000570 Image 1 42 contig. clusters, sizes 1 to 56272 Positive effect: 46081 voxels, min p-value: 0.00000000 Negative effect: 10806 voxels, min p-value: 0.00000000
orthviews(fdr_t);
SPM12: spm_check_registration (v7759) 23:38:04 - 21/10/2023 ======================================================================== Display /Users/h/Documents/MATLAB/CanlabCore/CanlabCore/canlab_canonical_brains/Canonical_brains_surfaces/keuken_2014_enhanced_for_underlay.img,1
drawnow, snapnow;
 
create_figure('montage'); axis off;
montage(fdr_t);
Setting up fmridisplay objects sagittal montage: 1253 voxels displayed, 55634 not displayed on these slices sagittal montage: 1378 voxels displayed, 55509 not displayed on these slices sagittal montage: 1255 voxels displayed, 55632 not displayed on these slices axial montage: 10306 voxels displayed, 46581 not displayed on these slices axial montage: 11500 voxels displayed, 45387 not displayed on these slices
drawnow, snapnow;
write(fdr_t, 'fname', strcat('/Users/h/Desktop/', contrast_of_interest, '_fdr_t.nii'), 'overwrite');
Writing: /Users/h/Desktop/cue_G_fdr_t.nii
 
 

General :: Neurosynth similarity

[image_by_feature_correlations, top_feature_tables] = neurosynth_feature_labels( mean(imgs2), 'images_are_replicates', false, 'noverbose');
Input image 1 fullpath_was_empty _____________________________________________________________________ testr_low words_low testr_high words_high _________ ______________ __________ ________________ -0.34387 {'trait' } 0.47561 {'visual' } -0.3293 {'rating' } 0.39679 {'object' } -0.3259 {'anxiety' } 0.38377 {'objects' } -0.30991 {'disorder' } 0.33214 {'attention' } -0.30372 {'age' } 0.32519 {'rotation' } -0.29507 {'affect' } 0.32057 {'shape' } -0.28441 {'negative' } 0.29492 {'orthographic'} -0.2838 {'affective' } 0.28886 {'solving' } -0.28194 {'depression'} 0.28706 {'letter' } -0.27304 {'positive' } 0.28327 {'calculation' }
% [image_by_feature_correlations, top_feature_tables] = neurosynth_feature_labels( m, 'images_are_replicates', false, 'noverbose');
General :: Pattern Phil
[obj, names] = load_image_set('pain_cog_emo');
Loaded images: /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_pMCC_Pain.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_aMCC_Pain.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_pACC_Pain.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_sgACC_Pain.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_vmPFC_Pain.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_dMFC_Pain.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_MFC_Pain.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_Wholebrain_Pain.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_pMCC_Cognitive_Control.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_aMCC_Cognitive_Control.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_pACC_Cognitive_Control.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_sgACC_Cognitive_Control.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_vmPFC_Cognitive_Control.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_dMFC_Cognitive_Control.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_MFC_Cognitive_Control.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_Wholebrain_Cognitive_Control.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_pMCC_Negative_Emotion.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_aMCC_Negative_Emotion.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_pACC_Negative_Emotion.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_sgACC_Negative_Emotion.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_vmPFC_Negative_Emotion.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_dMFC_Negative_Emotion.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_MFC_Negative_Emotion.nii /Users/h/Documents/MATLAB/Neuroimaging_Pattern_Masks/Multivariate_signature_patterns/2018_Kragel_MFC_Generalizability/bPLS_Wholebrain_Negative_Emotion.nii
bpls_wholebrain = get_wh_image(obj, [8 16 24]);
names_wholebrain = names([8 16 24]);
create_figure('Kragel Pain-Cog-Emo maps', 1, 3);
 
stats = image_similarity_plot(con_data_obj, 'average', 'mapset', bpls_wholebrain, 'networknames', names_wholebrain, 'nofigure');
Table of correlations Group:1 -------------------------------------- T-test on Fisher's r to Z transformed point-biserial correlations R_avg T P sig Pain Wholebrain -0.1599 -33.1438 0.0000 1.0000 Cog Wholebrain 0.0287 10.7774 0.0000 1.0000 Emo Wholebrain 0.1256 27.0778 0.0000 1.0000
axis image
 
subplot(1, 3, 2)
 
barplot_columns(stats.r', 'nofigure', 'colors', {[1 .9 0] [.2 .2 1] [1 .2 .2]}, 'names', names_wholebrain)
Col 1: Pain Wholebrain Col 2: Cog Wholebrain Col 3: Emo Wholebrain --------------------------------------------- Tests of column means against zero --------------------------------------------- Name Mean_Value Std_Error T P Cohens_d ___________________ __________ _________ ______ __________ ________ {'Pain Wholebrain'} -0.15995 0.0047532 -33.65 2.2204e-15 -3.4167 {'Cog Wholebrain' } 0.028747 0.0026658 10.783 2.2204e-15 1.0949 {'Emo Wholebrain' } 0.12564 0.0046013 27.305 2.2204e-15 2.7724
ans = struct with fields:
fig_han: [1×1 struct] axis_han: [1×1 Axes] bar_han1: [1×1 Bar] bar_han: {[1×1 Bar] [1×1 Bar] [1×1 Bar]} errorbar_han: {[1×1 ErrorBar] [1×1 ErrorBar] [1×1 ErrorBar]} point_han1: {97×3 cell} text_han: {97×3 cell} point_han: {97×3 cell} star_handles: [4.0010 6.0009 7.0009]
set(gca, 'FontSize', 14)
ylabel('Pattern similarity (r)');
title('Similarity (r) with patterns')
 
test_data_obj = resample_space(con_data_obj, bpls_wholebrain);
 
clear csim
for i = 1:3
 
csim(:, i) = canlab_pattern_similarity(test_data_obj.dat, bpls_wholebrain.dat(:, i), 'cosine_similarity');
 
end
Warning: Some images have zero values in some of the 411578 voxels in weight mask. These will be excluded from similarity analysis image-wise. Number of zero or NaN values within weight mask, by input image: 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 Warning: Some images have zero values in some of the 411578 voxels in weight mask. These will be excluded from similarity analysis image-wise. Number of zero or NaN values within weight mask, by input image: 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 Warning: Some images have zero values in some of the 411578 voxels in weight mask. These will be excluded from similarity analysis image-wise. Number of zero or NaN values within weight mask, by input image: 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83
 
subplot(1, 3, 3)
 
barplot_columns(csim, 'nofigure', 'colors', {[1 .9 0] [.2 .2 1] [1 .2 .2]}, 'names', names_wholebrain)
Col 1: Pain Wholebrain Col 2: Cog Wholebrain Col 3: Emo Wholebrain --------------------------------------------- Tests of column means against zero --------------------------------------------- Name Mean_Value Std_Error T P Cohens_d ___________________ __________ _________ _______ __________ ________ {'Pain Wholebrain'} -0.14867 0.0045311 -32.811 2.2204e-15 -3.3315 {'Cog Wholebrain' } 0.02752 0.0024433 11.264 2.2204e-15 1.1436 {'Emo Wholebrain' } 0.11709 0.0044834 26.116 2.2204e-15 2.6517
ans = struct with fields:
fig_han: [1×1 struct] axis_han: [1×1 Axes] bar_han1: [1×1 Bar] bar_han: {[1×1 Bar] [1×1 Bar] [1×1 Bar]} errorbar_han: {[1×1 ErrorBar] [1×1 ErrorBar] [1×1 ErrorBar]} point_han1: {97×3 cell} text_han: {97×3 cell} point_han: {97×3 cell} star_handles: [12.0015 13.0015 14.0015]
set(gca, 'FontSize', 14)
ylabel('Pattern similarity (cosine sim)');
title('Pattern response (cosine similarity)')